# 3.28 Environment Monitoring ## 3.28.1 Overview In this project, we use an OLED display to reveal the values of temperature, humidity, air pressure and altitude in the environment. It can be regarded as a mini environmental monitoring device. ## 3.28.2 Test Code **Code:** In Files, open **3-28-environmentalMonitoring.py** and click ![](media/run.jpg). ```python ''' * Filename : 3-28-environmentalMonitoring * Thonny : Thonny 4.1.4 * Author : http://www.keyestudio.com ''' import machine #import I2C and Pin from machine module from machine import I2C, Pin #import AHT20 from aht20 library from aht20 import AHT20 #import BMP388 from BMP388 library from bmp388 import BMP388 from oled import OLED import time #create an I2C object and add SDA and SCL pins i2c = I2C(scl=Pin(22), sda=Pin(21)) #create an AHT20 object and initialize I2C object to communicate with AHT20 sensor via I2C bus sensor = AHT20(i2c) # create a BMP388 object and set SDA and SCL pins, set IIC frequency to 100KHz i2c = machine.SoftI2C(scl=machine.Pin(22), sda=machine.Pin(21), freq=100000) # create a BMP388 object and send i2c object to it to communicate with the BMP388 sensor via the I2C bus, set the BMP388 IIC address to 0x76 bmp = BMP388(i2c, i2c_addr=0x76) # create an OLED example oled = OLED(i2c) # clear oled oled.clear() ''' str() function converts a variable of type string from a variable of another type int() function converts a variable of another type to a variable of type int. The reason for this conversion is that there is no data display after the decimal pressure unit conversion:1 hPa = 1 × 100 Pa = 100 Pa ''' while True: try: #Store the values of temperature and humidity in the temperature and humidity variables temperature, humidity = sensor.read_temperature_humidity() # read the pressure pressure = bmp.read_pressure() // 100 #Convert Pa to hPa by dividing the pressure by 100 # clear display oled.clear() # show pressure oled.show_text("Pressure:", 0, 0) oled.show_text(str(int(pressure)), 70, 0) oled.show_text("hPa", 105, 0) # show temperature oled.show_text("Temperature:", 0, 15) oled.show_text(str(int(temperature)), 100, 15) oled.show_text("C", 120, 15) # show humidity oled.show_text("Humidity:", 0, 30) oled.show_text(str(int(humidity)), 75, 30) oled.show_text("%", 105, 30) # show oled oled.oled.show() # detect and read value, print “Failed to read from sensor:” if an error occurs except RuntimeError as e: print("Failed to read from sensor: ", e) time.sleep(1) #delay 1S ``` **Result:** After uploading code, you will see the values of temperature, humidity and air pressure on the OLED display.